<?php
// 支付配置文件

// 数据库配置
require_once __DIR__ . '/../config.php'; // 引用主配置文件

// 生成订单号
function generateOrderNo() {
    return date('YmdHis') . mt_rand(1000, 9999);
}

// 生成卡密函数
function generateKamiKey() {
    $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    $key = '';
    for ($i = 0; $i < 16; $i++) {
        $key .= $chars[rand(0, strlen($chars) - 1)];
        if ($i > 0 && $i % 4 === 3 && $i < 15) {
            $key .= '-';
        }
    }
    return $key;
}

// ======== 支付宝当面付配置 ========

// 从数据库加载支付配置
function getPaymentSettings($pdo) {
    $settings = [];
    $stmt = $pdo->query("SELECT name, value FROM settings WHERE name IN ('alipay_app_id', 'alipay_private_key', 'alipay_public_key')");
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $settings[$row['name']] = $row['value'];
    }
    return $settings;
}

$payment_settings = getPaymentSettings($pdo);

// 支付宝应用ID
define('ALIPAY_APP_ID', $payment_settings['alipay_app_id'] ?? '');

// 支付宝应用私钥
// 请从支付宝开放平台下载"应用私钥"，并在此填写
define('ALIPAY_PRIVATE_KEY', $payment_settings['alipay_private_key'] ?? '');

// 支付宝公钥
// 请从支付宝开放平台下载"支付宝公钥"，并在此填写
define('ALIPAY_PUBLIC_KEY', $payment_settings['alipay_public_key'] ?? '');

// 异步通知地址
// 需为公网可访问的URL，不能携带参数
// 设置自己的通知地址
define('ALIPAY_NOTIFY_URL', rtrim(SITE_URL, '/') . '/pay/notify.php');

// 同步跳转地址
// 支付成功后，浏览器会自动跳转到该地址
define('ALIPAY_RETURN_URL', rtrim(SITE_URL, '/') . '/pay/success.php');

// 检查必要的配置是否为空
if (empty(ALIPAY_APP_ID) || empty(ALIPAY_PRIVATE_KEY) || empty(ALIPAY_PUBLIC_KEY)) {
     if (php_sapi_name() !== 'cli' && (!isset($is_install_page) || !$is_install_page)) {
        // 如果不是在安装页面，则显示错误
        die("错误：支付宝配置信息不完整。请登录后台 -> 系统设置 -> 支付配置 中填写完整。");
    }
}
?> 